home *** CD-ROM | disk | FTP | other *** search
- ; ATARI.S Equate and macro file for atari ST RMS
- ; Extended and Improved: 8/11/88 - RJZ
- ; Combined and Extended and Improved: 09/16/88 - RMS
- ;
-
- save_rs: EQU ^^RSCOUNT ;RS-Counter merken
-
- ; File header structure
- RSRESET
- FILE_ID: RS.W 1
- TSIZE: RS.L 1
- DSIZE: RS.L 1
- BSIZE: RS.L 1
- SSIZE: RS.L 1
- XXX1: RS.L 1
- XXX2: RS.L 1
- XXX3: RS.W 1
- HEADSIZE: EQU ^^RSCOUNT
-
- ; base page structure
- RSRESET
- LOWTPA: RS.L 1
- HITPA: RS.L 1
- TBASE: RS.L 1
- TLEN: RS.L 1
- DBASE: RS.L 1
- DLEN: RS.L 1
- BBASE: RS.L 1
- BLEN: RS.L 1
- DTA: RS.L 1
- PARENT: RS.L 1
- XXXX: RS.L 1
- ENVIR: RS.L 21
- CMDLINE: RS.B 128
-
- ; defines
- TEXTSZ: EQU TLEN
- DATASZ: EQU DLEN
- BSSSZ: EQU BLEN
- BPSZ: EQU ^^RSCOUNT
- MYDTA: EQU DTA
- RSSET save_rs ;RS-Counter wieder zurücksetzen
-
- CR: EQU $0D
- LF: EQU $0A
- TAB: EQU $09
-
- ****
- **** This is a preliminary equates file for the Atari ST;
- **** not all the equates may be here, there may be typos
- **** we haven't caught, and not all the macros for Gemdos
- **** and the BIOS have been defined.
- ****
-
- ;
- ; Atari ST hardware locations
- ;
- memconf: EQU $FFFF8001 ;memory configuration
- vbasehi: EQU $FFFF8201
- vbasemid: EQU $FFFF8203 ;Video base address
- vcounthi: EQU $FFFF8205
- vcountmid: EQU $FFFF8207
- vcountlo: EQU $FFFF8209 ;Video display counter
- syncmode: EQU $FFFF820A ;video sync mode
- vbaselo: EQU $FFFF820D ;Video base address (lo; STE only)
- linewid: EQU $FFFF820F ;Width of a scan-line (Words, minus 1; STE only)
- palette: EQU $FFFF8240 ;color registers 0..15
- rezmode: EQU $FFFF8260 ;Resolution mode (0=320x200,1=640x200,2=640x400)
- hscroll: EQU $FFFF8265 ;Horizontal scroll count (0..15; STE only)
-
- diskctl: EQU $FFFF8604 ;disk controller data access
- fifo: EQU $FFFF8606 ;DMA mode control
- dmahi: EQU $FFFF8609
- dmamid: EQU $FFFF860B
- dmalo: EQU $FFFF860D ;DMA base address
-
- cmdreg: EQU $80 ;1770/FIFO command register select
- trkreg: EQU $82 ;1770/FIFO track register select
- secreg: EQU $84 ;1770/FIFO sector register select
- datareg: EQU $86 ;1770/FIFO data register select
-
- ; GI ("psg") sound chip:
- giselect: EQU $FFFF8800 ;(W) sound chip register select
- giread: EQU $FFFF8800 ;(R) sound chip read-data
- giwrite: EQU $FFFF8802 ;(W) sound chip write-data
- gitoneaf: EQU 0 ;channel A fine/coarse tune
- gitoneac: EQU 1
- gitonebf: EQU 2 ;channel B
- gitonebc: EQU 3
- gitonecf: EQU 4 ;channel C
- gitonecc: EQU 5
- ginoise: EQU 6 ;noise generator control
- gimixer: EQU 7 ;I/O control/volume control register
- giaamp: EQU 8 ;channel A, B, C amplitude
- gibamp: EQU 9
- gicamp: EQU $0A
- gifienvlp: EQU $0B ;envelope period fine, coarse tune
- gicrnvlp: EQU $0C
- giporta: EQU $0E ;GI register# for I/O port A
- giportb: EQU $0F ;Centronics output register
-
- ; Bits in "giporta":
- xrts: EQU 8 ;RTS output
- dtr: EQU $10 ;DTR output
- strobe: EQU $20 ;Centronics strobe output
- gpo: EQU $40 ;"general purpose" output
-
- ; 68901 ("mfp") sticky chip:
- mfp: EQU $FFFFFA00 ;mfp base
- gpip: EQU mfp+1 ;general purpose I/O
- aer: EQU mfp+3 ;active edge reg
- ddr: EQU mfp+5 ;data direction reg
- iera: EQU mfp+7 ;interrupt enable A & B
- ierb: EQU mfp+9
- ipra: EQU mfp+$0B ;interrupt pending A & B
- iprb: EQU mfp+$0D
- isra: EQU mfp+$0F ;interrupt inService A & B
- isrb: EQU mfp+$11
- imra: EQU mfp+$13 ;interrupt mask A & B
- imrb: EQU mfp+$15
- vr: EQU mfp+$17 ;interrupt vector base
- tacr: EQU mfp+$19 ;timer A control
- tbcr: EQU mfp+$1B ;timer B control
- tcdcr: EQU mfp+$1D ;timer C & D control
- tadr: EQU mfp+$1F ;timer A data
- tbdr: EQU mfp+$21 ;timer B data
- tcdr: EQU mfp+$23 ;timer C data
- tddr: EQU mfp+$25 ;timer D data
- scr: EQU mfp+$27 ;sync char
- ucr: EQU mfp+$29 ;USART control reg
- rsr: EQU mfp+$2B ;receiver status
- tsr: EQU mfp+$2D ;transmit status
- udr: EQU mfp+$2F ;USART data
-
- ; 6850 registers:
- keyctl: EQU $FFFFFC00 ;keyboard ACIA control
- keybd: EQU $FFFFFC02 ;keyboard data
- midictl: EQU $FFFFFC04 ;MIDI ACIA control
- midi: EQU $FFFFFC06 ;MIDI data
-
- ; BIOS Variables
- etv_timer: EQU $0400 ;vector for timer interrupt chain
- etv_critic: EQU $0404 ;vector for critical error chain
- etv_term: EQU $0408 ;vector for process terminate
- etv_xtra: EQU $040C ;5 reserved vectors
- memvalid: EQU $0420 ;indicates system state on RESET
- memcntlr: EQU $0424 ;mem controller config nibble
- resvalid: EQU $0426 ;validates 'resvector'
- resvector: EQU $042A ;[RESET] bailout vector
- phystop: EQU $042E ;physical top of RAM
- _membot: EQU $0432 ;bottom of available memory;
- _memtop: EQU $0436 ;top of available memory;
- memval2: EQU $043A ;validates 'memcntlr' and 'memconf'
- flock: EQU $043E ;floppy disk/FIFO lock variable
- seekrate: EQU $0440 ;default floppy seek rate
- _timr_ms: EQU $0442 ;system timer calibration (in ms)
- _fverify: EQU $0444 ;nonzero: verify on floppy write
- _bootdev: EQU $0446 ;default boot device
- palmode: EQU $0448 ;nonzero ==> PAL mode
- defshiftmd: EQU $044A ;default video rez (first byte)
- sshiftmd: EQU $044C ;shadow for 'shiftmd' register
- _v_bas_ad: EQU $044E ;pointer to base of screen memory
- vblsem: EQU $0452 ;semaphore to enforce mutex in vbl
- nvbls: EQU $0454 ;number of deferred vectors
- _vblqueue: EQU $0456 ;pointer to vector of deferred vfuncs
- colorptr: EQU $045A ;pointer to palette setup (or NULL)
- screenpt: EQU $045E ;pointer to screen base setup (|NULL)
- _vbclock: EQU $0462 ;count of vblank interrupts
- _frclock: EQU $0466 ;count of unblocked vblanks (not blocked by vblsem)
- hdv_init: EQU $046A ;hard disk initialization
- swv_vec: EQU $046E ;video change-resolution bailout
- hdv_bpb: EQU $0472 ;disk "get BPB"
- hdv_rw: EQU $0476 ;disk read/write
- hdv_boot: EQU $047A ;disk "get boot sector"
- hdv_mediach: EQU $047E ;disk media change detect
- _cmdload: EQU $0482 ;nonzero: load COMMAND.COM from boot
- conterm: EQU $0484 ;console/vt52 bitSwitches (%%0..%%2)
- trp14ret: EQU $0486 ;saved return addr for _trap14
- criticret: EQU $048A ;saved return addr for _critic
- themd: EQU $048E ;memory descriptor (MD)
- _____md: EQU $049E ;(more MD)
- savptr: EQU $04A2 ;pointer to register save area
- _nflops: EQU $04A6 ;number of disks attached (0, 1+)
- constate: EQU $04A8 ;state of conout() parser
- save_row: EQU $04AC ;saved row# for cursor X-Y addressing
- sav_context: EQU $04AE ;pointer to saved processor context
- _bufl: EQU $04B2 ;two buffer-list headers
- _hz_200: EQU $04BA ;200hz raw system timer tick
- _drvbits: EQU $04C2 ;bit vector of "live" block devices
- _dskbufp: EQU $04C6 ;pointer to common disk buffer
- _autopath: EQU $04CA ;pointer to autoexec path (or NULL)
- _vbl_list: EQU $04CE ;initial _vblqueue (to $4ee)
- _prt_cnt: EQU $04EE ;screen-dump flag (non-zero abort screen dump)
- _prtabt: EQU $04F0 ;printer abort flag
- _sysbase: EQU $04F2 ;-> base of OS
- _shell_p: EQU $04F6 ;-> global shell info
- end_os: EQU $04FA ;-> end of OS memory usage
- exec_os: EQU $04FE ;-> address of shell to exec on startup
- scr_dump: EQU $0502 ;-> screen dump code
- prv_lsto: EQU $0506 ;-> _lstostat()
- prv_lst: EQU $050A ;-> _lstout()
- prv_auxo: EQU $050E ;-> _auxostat()
- prv_aux: EQU $0512 ;-> _auxout()
-